﻿using System;
using System.Reflection;
using System.Linq.Expressions;
using Library.Collections.Generic;

namespace Library
{
    public interface ISimilarityComparable<in T, out TKey>
        where TKey : IComparable<TKey>
    {
        TKey SimilarTo(T other);
    }

    public interface ISimilarityComparer<in T, out TKey>
        where TKey : IComparable<TKey>
    {
        TKey Similarity(T x, T y);
    }

    public interface ISimilarityComparable<in T> : ISimilarityComparable<T, float> { }

    public interface ISimilarityComparer<in T> : ISimilarityComparer<T, float> { }
}